python - HowTo 基准测试 : Reading Data
全部标签 我有5个端点,它们具有GET、POST和DELETE等方法来测试。我使用go的内置测试包编写了测试用例。我担心我遗漏了一些我不感兴趣的案例。我已经在代码审查中发布了我的测试用例进行审查,但我没有得到任何回应。我也关注了这个帖子TestingHTTProutesingolang.所有这些测试用例都在检查响应代码。问题是,我的大部分测试用例都遵循类似的模式,我以不同的格式发布数据并检查响应代码。我强烈觉得我错过了一些东西,当我将它推向产品时会破坏我的API。我需要对测试这些路由有一些了解,这样我才能有信心将API推向产品。main_test.gofuncTestSigHandler(t*t
我正在使用第三方库,它是一些C函数的包装器。不幸的是,几乎所有的Go函数都是免费的(它们没有接收器,它们不是方法);不是我会采用的设计方法,但它就是我所拥有的。仅使用Go的标准“测试”库:是否有一种解决方案允许我创建可以模拟函数的测试?或者是将库包装成结构和接口(interface),然后模拟接口(interface)来实现我的目标的解决方案?我创建了一个蒙特卡洛模拟,它也处理生成的数据集。我的一种评估算法会寻找特定模型,然后将其传递给第三方函数进行评估。我知道我的边缘情况并且知道调用计数应该是多少,这就是我想要测试的。也许只需要一个简单的计数器?我发现使用这个库的其他项目没有完全覆盖
go程序使用连接字符串连接到数据库。目前该连接字符串存储在环境变量中。我的挑战是编写一个自动化测试,针对测试数据库运行程序。我想我会在测试的init()函数中设置连接字符串环境变量,但是在测试init()之前调用了主程序的init()函数,所以这不起作用。解决方法似乎是将连接字符串默认为测试数据库。如果没有定义环境变量,则使用test;如果已定义(生产),则改用它。有替代方案吗?有没有更好的方法? 最佳答案 我目前的解决方案是使连接成为未初始化的全局连接。该函数检查连接是否为nil-如果是,则将其初始化。该测试有一个setup()函
我知道有hashlib在Python中,但我想获得与下面的Go中相同的结果:packagemainimport("crypto/md5""fmt")funcmain(){data:=[]byte("12345")fmt.Println("sum",md5.Sum(data))}作为funcmd5.Sum描述,它计算“数据的MD5校验和”。但是,我在Python中找不到任何类似的函数。有没有办法像在Go中那样在Python中实现md5.Sum?上面程序的输出是一个slice而不是一个字符串:sum[3244185981728979115075721453575112]
我正在尝试分析我编写的Web服务器,但我的pprof不包含有关处理程序函数的任何数据。我正在使用httprouterpackage由julienschmidt编写,并想简单地对我的一个处理程序进行基准测试,然后查看pprof配置文件。对于基准测试,我使用go-wrk我像这样设置我的网络服务器和pprof://Configuretheserverserver:=&http.Server{Addr:":4000",Handler:router,}gofunc(){log.Println(http.ListenAndServe(":6060",nil))}()//Starttheserver
我无法追溯我是从哪里知道的,但通常情况下,如果有人为方法Foo编写测试,则相应的测试名为TestFoo。如果测试一个未导出的函数,比如foo,那么测试的名称应该是什么?我的问题来自这样一个事实,当要求为未导出的函数生成测试时,JetBrainsIDEforGo会生成类似Test_foo的内容。这种行为可能是有道理的,因为如果你有Foo并且它是未导出的counterpatfoo在同一个包中,你会想以某种方式对它们进行不同的测试(在至少对于IDE中的跳转测试功能而言)。那么在未导出的函数之后命名测试有什么约定吗?顺便说一句:Go的文档testing包说,如果是,则执行测试:anyfunct
我尝试了几种方法(如下所示),但我都不喜欢其中任何一种。所以我决定询问社区是否有更好的方法。方法一将数据库凭据作为参数传递:gotest-args-db_user=test-db_pass=secret然后在测试中使用它:packagemy_testvardbUser=flag.String("db_user","","testdatabaseuser")vardbPass=flag.String("db_pass","","testdatabasepassword")funcTestSomething(t*testing.T){db:=open(*dbUser,*dbPass)}方法
我有一个WebSocket服务器,我正在尝试正确测试它的一些功能。我有以下场景:我正在接受WebSocket连接并调用一个channelregisterConn在新连接上通知typehubstruct.这是中心:typehubstruct{clientsmap[client]boolregisterConnchanclient//someotherfieldsbelow...}//Thisfunctionrunsinitsownthreadforeverfunc(h*hub)run(){for{select{//Aclientconnectsonthischannelcaseclien
我编写了一个HelloWorld.py并使用grumpy将HelloWorld.py编译为Go源代码。但是在运行gobuild之后,没有生成二进制文件,gobuild命令成功执行,没有任何错误,但是在文件夹中没有找到二进制文件。这是HelloWorld.py中的代码:defhello():print("hello,world")这是在hello.go中生成的代码:package__main__importπg"grumpy/build/src/grumpy"varCode*πg.Codefuncinit(){Code=πg.NewCode("","hello.py",nil,0,fun
如何使用ginkgo在多个测试文件中编写测试用例?a_suite_test.go文件:funcTestA(t*testing.T){RegisterFailHandler(Fail)RunSpecs(t,"ASuite")}a_test.go:var_=Describe("A",func(){Context("A",func(){It("A",func(){Expect(1).To(Equal(1))})})})我运行ginkgo,但抛出错误:FailedtocompileA:gobuildxxx:nonon-testGofilesinxxx我可以在其他测试文件中编写测试用例而不是在套